package com.xujie.sportsmeeting.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 成绩分布统计VO
 */
@Data
@Schema(description = "成绩分布统计信息")
public class ScoreDistributionVO {

    @Schema(description = "项目ID")
    private Long eventId;

    @Schema(description = "项目名称")
    private String eventName;

    @Schema(description = "成绩类型")
    private String scoreType;

    @Schema(description = "最高成绩")
    private String maxScore;

    @Schema(description = "最低成绩")
    private String minScore;

    @Schema(description = "平均成绩")
    private String averageScore;

    @Schema(description = "中位数成绩")
    private String medianScore;

    @Schema(description = "标准差")
    private BigDecimal standardDeviation;

    @Schema(description = "方差")
    private BigDecimal variance;

    @Schema(description = "偏度")
    private BigDecimal skewness;

    @Schema(description = "峰度")
    private BigDecimal kurtosis;

    @Schema(description = "成绩区间分布")
    private Map<String, Integer> scoreRangeDistribution;

    @Schema(description = "百分位数")
    private Map<String, String> percentiles;

    @Schema(description = "院系成绩分布")
    private List<DepartmentScoreVO> departmentScores;

    @Schema(description = "性别成绩对比")
    private GenderScoreComparisonVO genderComparison;

    @Schema(description = "成绩分布图数据")
    private List<ScoreDistributionPointVO> distributionPoints;

    @Schema(description = "异常值")
    private List<OutlierVO> outliers;

    @Schema(description = "成绩改进建议")
    private List<String> improvementSuggestions;
}
